package fun.tan90.easy.binlog.manager.service;

import fun.tan90.easy.binlog.manager.model.cmd.MetricThreadQueryCmd;
import fun.tan90.easy.binlog.manager.model.cmd.MetricCpuQueryCmd;
import fun.tan90.easy.binlog.manager.model.cmd.MetricJvmQueryCmd;
import fun.tan90.easy.binlog.manager.model.vo.MetricCacheStatsVo;
import fun.tan90.easy.binlog.manager.model.vo.MetricCpuLineChartVo;
import fun.tan90.easy.binlog.manager.model.vo.MetricJvmLineChartVo;
import fun.tan90.easy.binlog.manager.model.vo.MetricThreadLineChartVo;

import java.util.List;

/**
 * 实例JVM指标历史信息 服务层。
 *
 * @author 陈浩杰
 * @since 2023-10-31
 */
public interface MetricService {

    List<MetricCpuLineChartVo> cpu(MetricCpuQueryCmd queryCmd);

    List<MetricJvmLineChartVo> jvm(MetricJvmQueryCmd queryCmd);

    Double jvmPercent(String workId, String jvmType);

    List<MetricThreadLineChartVo> thread(MetricThreadQueryCmd queryCmd);

    List<MetricCacheStatsVo> cacheStats(String workId);
}
